perm filename FORMAT[LSP,JRA]14 blob
sn#303760 filedate 1977-09-02 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00013 00003 .TURN ON "¬" FOR "%"
C00014 ENDMK
C⊗;
.TURN ON "{#%"
.TURN OFF "-" << Too many minus signs would be mistaken for hyphens. >>
.DEVICE XGP;
.FILL PREFACE 0;<<**************>>
.TENPOINT←FALSE
.If TENPOINT THEN
. START FILL SPACING 24 MILLS END; <<for PHOTO-SETTING 10 point**********>>
. ELSE
.START FILL SPACING 20 MILLS END; << for 12 point**********>>
.comment
.Margin Setting Example
.
.The following example defines a macro that given a page size adjusts the page
.frame to fit font 1 on a page with resonable margins.
.;
.charw←12
.MACRO PAPER_SIZE(X,Y) ⊂ MILL_PAPER_HEIGHT←Y; MILL_PAPER_WIDTH←X; ⊃
.
.VARIABLE PAGE_HEIGHT, PAGE_WIDTH
.
.MACRO MARGINS (εLEFT,εRIGHT,εTOP,εBOTTOM) ⊂ BEGIN GROUP SELECT 1;
. IF MILL_PAPER_HEIGHT ≤ 0 THEN MILL_PAPER_HEIGHT←11000; <<8.5" X 11" DEFAULT>>
. IF MILL_PAPER_WIDTH ≤ 0 THEN MILL_PAPER_WIDTH ← 8500;
.
. BIT_RASTER_WIDTH←(MILL_PAPER_WIDTH*HBPI)/1000;
. BIT_RASTER_HEIGHT←(MILL_PAPER_HEIGHT*VBPI)/1000;
.
. IF LEFT ≥ 0 THEN ODDLEFTBORDER←LEFT ELSE ODDLEFTBORDER←1500;
. IF RIGHT ≥ 0 THEN RIGHTBORDER←RIGHT ELSE RIGHTBORDER←1000;
. IF TOP ≥ 0 THEN TOPBORDER←TOP ELSE TOPBORDER←1000;
. IF BOTTOM ≥ 0 THEN BOTTOMBORDER←BOTTOM ELSE BOTTOMBORDER←500;
.
. EVENLEFTBORDER←ODDLEFTBORDER; XGP_VSP←(MILLSPACING*VBPI)/1000;
.
. PAGE_WIDTH←(BIT_RASTER_WIDTH-(HBPI*(ODDLEFTBORDER+RIGHTBORDER))/1000)/CHARW
. PAGE_HEIGHT←(BIT_RASTER_HEIGHT-(VBPI*(TOPBORDER+BOTTOMBORDER))/1000)
. /(CHARH+XGP_VSP);
.
. hlines←page_height-2;
. wchars←page_width
.
. PAGE FRAME PAGE_WIDTH WIDE PAGE_HEIGHT HIGH
. TITLE AREA HEADING LINES 1 TO 2
. AREA TExT LINES 3 TO PAGE_HEIGHT-2
. TITLE AREA FOOTING LINE PAGE_HEIGHT
. PLACE TExT
. END ⊃;
.area text lines 3 to 47 ;<<**********>>
.HLINES← IF XCRIBL THEN 45 ELSE 53 << 49 NUMBER OF LINES/PAGE >>
.WCHARS← IF XCRIBL THEN 81 ELSE 69 << 81 NUMBER OF CHARS/LINE >>
.comment
.
.!XGPLFTMAR←200
.
.
.PAGE FRAME HLINES+2 HIGH WCHARS WIDE
.AREA TEXTER LINES 4 TO HLINES CHARS 1 TO WCHARS
.TITLE AREA FOOTING LINE HLINES+1 CHARS 1 TO WCHARS
.TITLE AREA HEADING LINES 1 TO 3 CHARS 1 TO WCHARS
.PLACE TEXTER
.;
.VARIABLE SECNAME, SSNAME, SSNUMBER, FOO, CATEGORY;
.VARIABLE FIRST_PAR,par; <<**********>>
.par←6;<<**********>>
.COUNT SECTION;
.COUNT SUBSECTION IN SECTION PRINTING "!.1";
.COUNT APPENDIX;
.MACRO SEC(NAME,ABBREV,PHRASE,LABEL) ⊂
.IF SSNAME ≠ SECNAME THEN FOO←TRUE ELSE FOO←FALSE;
. SSNAME ← SECNAME ← IF "ABBREV"≠NULL THEN "ABBREV" ELSE "NAME";
. SSNUMBER ← (SECTION+1)&"."
. SKIP TO COLUMN 1; LABEL NEXT SECTION!;
. BEGIN
. flush right <<center>>
.GROUP SKIP 3 <<6 ********>>
%2CHAPTER {!}%*
. SKIP 4 <<was blank>>
.NAM←↑"NAME";
.nam1←"name";
.fill;
¬A{nam1}%*
.<<{NAM}%*>>
. SKIP 12;
. CAT("PHRASE","NAME");
.IF FOO THEN SEND CONTENTS ⊂ SKIP 2;
∂4{SECTION!}∂8{NAM}→{PAGE!}{SKIP;⊃
.ELSE SEND CONTENTS ⊂ SKIP ;
∂4{SECTION!}∂8{NAM}→{PAGE!}{SKIP;⊃
. END;
. ⊃
.MACRO SS(NAME,PHRASE,LABEL) ⊂
. SSNUMBER←SECTION!&"."&(SUBSECTION+1);
. SSNAME←"NAME";
. IF LINES≤7 THEN NEXT PAGE;
. LABEL NEXT SUBSECTION!;
. BEGIN
. SKIP 2
. CAT("PHRASE","NAME");
. SEND CONTENTS ⊂
∂(13){!}∂(19)NAME\∞ ∞.∞ →#{PAGE!}
. ⊃
. CENTER
.nam←"name";
%2{!}##{nam}%*{
. skip 1;
. END;
. ⊃
.MACRO SSP(NAME,PHRASE,LABEL) ⊂
. SKIP TO COLUMN 1
.SS("NAME","PHRASE","LABEL") ⊃
.MACRO CAT(PHRASE,NAME) ⊂IF "PHRASE"≠NULL THEN
. IF "PHRASE"="←" THEN SEND INDEX ⊂}<{PAGE}≤NAME≥{⊃
. ELSE SEND INDEX ⊂}<{PAGE}≤PHRASE≥{⊃ ⊃
.MACRO REFER (THIS,THAT) ⊂SEND INDEX ⊂}<⊗∪see∩ THAT≤THIS≥{⊃ ⊃
.AT "⊗→" SPECIFIC "↔" GENERIC "←" ⊂
.IF "GENERIC"≠NULL THEN
. START SEND INDEX ⊂}<{PAGE}≤GENERIC, SPECIFIC≥{⊃; "SPECIFIC GENERIC"; END
.ELSE START SEND INDEX ⊂}<{PAGE}≤SPECIFIC≥{⊃; "SPECIFIC"; END ⊃
.AT "⊗>" SPECIFIC "↔" GENERIC "←" ⊂
.IF "GENERIC"≠NULL THEN
. START SEND INDEX ⊂}<{PAGE}≤GENERIC, SPECIFIC {CATEGORY}≥{⊃; "SPECIFIC GENERIC"; END
.ELSE START SEND INDEX ⊂}<{PAGE}≤SPECIFIC {CATEGORY}≥{⊃; "SPECIFIC"; END ⊃
.MACRO SETCATEGORY(TEXT) ⊂ CATEGORY ← "TEXT" ;⊃
.MACRO APP(NAME,ABBREV,PHRASE,LABEL) ⊂
. SECNAME ← IF "ABBREV"≠NULL THEN "ABBREV" ELSE "NAME";
. SSNUMBER ← NULL;
. SSNAME ← "Appendix "&(APPENDIX+1);
. SKIP TO COLUMN 1; LABEL NEXT APPENDIX!;
. BEGIN
. CENTER
%2APPENDIX {!}
. SKIP
.NAM←↑"NAME"
{NAM}%*
. SKIP 3
. CAT("PHRASE","NAME");
. SEND CONTENTS ⊂ SKIP;
∂4{APPENDIX!}∂8{NAM}→{PAGE!}{ ⊃
. END ⊃
.MACRO APPX(NAME,ABBREV,PHRASE,LABEL) ⊂
. SECNAME ← IF "ABBREV"≠NULL THEN "ABBREV" ELSE "NAME";
. SSNUMBER ← NULL;
. SSNAME ← "Appendix "&(APPENDIX+1);
. SKIP TO COLUMN 1; LABEL NEXT APPENDIX!;
. BEGIN
. CENTER
%2APPENDIX {!}
. SKIP
.NAM←↑"NAME"
{NAM}%*
. SKIP 1
. CAT("PHRASE","NAME");
. SEND CONTENTS ⊂ SKIP;
∂4{APPENDIX!}∂8{NAM}→{PAGE!}{ ⊃
. END ⊃
.MACRO CENT (NAME,PHRASE) ⊂IF LINES ≤ 7 THEN SKIP TO COLUMN 1;;
.CAT("PHRASE","NAME");
.BEGIN CENTER PT24
%2NAME%*
.PT18; END
.⊃
.MACRO SVERBATIM ⊂VERBATIM; SELECT 3 ⊃
.MACRO SAMPLE ⊂SKIP 1; ONCE SVERBATIM ⊃
.COUNT FOOTNOTE INLINE from 1 TO 99 BY 1 IN section printing ⊂"%8#{FOOTNOTE}%*"⊃;
.AT "⊗↓" ENTRY "←" ⊂NEXT FOOTNOTE ; ! ;
.SEND FOOT ⊂
.BEGIN "FOOT"
.FILL
.INDENT par,0;
{!} ENTRY
.BREAK
.END "FOOT" ⊃ ⊃
.MACRO YON (LABEL) ⊂"page#";PAGE! LABEL⊃
.MACRO YONAPP (LABEL) ⊂"Appendix ";APPENDIX! LABEL⊃
.MACRO YONSEC (LABEL) ⊂"Chapter#";SECTION! LABEL⊃
.MACRO YONSS (LABEL) ⊂"Section#";SUBSECTION! LABEL⊃
.MACRO TABLE ⊂ BEGIN
.SKIP 1
.NARROW 2,2; GROUP; TABS 10 ; TURN ON "\" ;
.NOFILL ; PREFACE 0 ; SELECT 4;
.INDENT 0,9 ; BREAK ⊃
.TURN ON "¬" FOR "%"
.FOOTSEP ← "________________"
.SECNAME ← SSNUMBER ← SSNAME ← NULL
.ODD HEADING(¬c{SSNUMBER},,{SSNAME} {PAGE}¬*)
.EVEN HEADING(¬c{PAGE} {SECNAME},,{SSNUMBER}¬*)
.insert prefASS
.INSERT CONTENTS
.portion mainportion;
.COMPACT
.COUNT PAGE TO 999 printing "1";
.NEXT PAGE